package cn.supermaster.management.web.service.system;

import cn.supermaster.management.common.domain.SystemUser;
import cn.supermaster.management.common.response.WebResponse;
import org.springframework.ui.ModelMap;
import org.springframework.web.multipart.MultipartFile;

/**
 * All rights Reserved, Designed By www.super-bytecode.com
 *
 * @ProjectName: supermaster-management
 * @Package: cn.supermaster.management.web.service.system
 * @ClassName: ISProfileService
 * @Description: []
 * <p> </p>
 * @Author: [Lance Ting]
 * @Date: 2021/1/10 20:45
 * @Version: V1.0
 * @Copyright: 2021 www.super-bytecode.comn Inc. All rights reserved.
 * TODO: 注意,本文件Lance Ting所作,如果转载或使用请标明具体出处!
 **/
public interface ISProfileService {

    /*
     * ================================================
     *  页面跳转功能实现
     * ================================================
     */

    /**
     * @Description: [跳转到个人业务界面]
     * <p></P>
     * @Title: skipProfileHtml
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: modelMap
     * @Return: java.lang.String
     */
    String skipProfileHtml(ModelMap modelMap);

    /**
     * @Description: [跳转到用户修改密码界面]
     * <p></P>
     * @Title: skipPesetPassword
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: modelMap
     * @Return: java.lang.String
     */
    String skipPesetPassword(ModelMap modelMap);

    /**
     * @Description: [跳转到用户信息修改界面]
     * <p></P>
     * @Title: skipUserModifyHtml
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: modelMap
     * @Return: java.lang.String
     */
    String skipUserModifyHtml(ModelMap modelMap);

    /**
     * @Description: [跳转到用户头像修改界面]
     * <p></P>
     * @Title: skipUserAvatarHtml
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: modelMap
     * @Return: java.lang.String
     */
    String skipUserAvatarHtml(ModelMap modelMap);

    /*
     * ================================================
     *  Rest功能实现
     * ================================================
     */

    /**
     * @Description: [用户密码验证]
     * <p></P>
     * @Title: doCheckPassword
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: password
     * @Return: boolean
     */
    boolean doCheckPassword(String password);

    /**
     * @Description: [修改用户密码]
     * <p></P>
     * @Title: doResetAccountPassword
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: source 旧密码
     * @Param: target 新密码
     * @Return: cn.supermaster.management.common.response.WebResult
     */
    WebResponse doResetPassword(String source, String target);

    /**
     * @Description: [修改用户信息]
     * <p></P>
     * @Title: doModifyUserInformation
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: user
     * @Return: cn.supermaster.management.common.response.WebResult
     * @Throws:
     */
    WebResponse doModifyUserInformation(SystemUser user);

    /**
     * @Description: [修改用户头像信息]
     * <p></P>
     * @Title: doModifyAvatarInformation
     * @Author: Lance Ting
     * @Date: 2021-01-10
     * @Param: avatarFile
     * @Return: cn.supermaster.management.common.response.WebResult
     */
    WebResponse doModifyAvatarInformation(MultipartFile avatarFile);
}